home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FM Towns: Free Software Collection 7
/
FM Towns Free Software Collection 7.iso
/
t_os
/
gpen32k
/
source.exe
/
SRC
/
GPEN.C
next >
Wrap
C/C++ Source or Header
|
1993-08-02
|
2KB
|
99 lines
/* GPenシリーズ完全互換関数 */
#include <stdlib.h>
#include <math.h>
#include <EGB.H>
#include <MOS.H>
#include <kkstr2.h>
#include <NORMLIB.H>
#include <okome.h>
#include <gpen.h>
/* GpenSub.h include禁止 */
void bsz( int *l, int *b )
{
int i;
if ( *l > *b )
{
i = *b;
*b = *l;
*l = i;
}
}
void uboxf( int x1, int y1, int x2, int y2, int c1, int c2, int c3 )
{
boxf( x1, y1, x2, y2, c3 );
ubox( x1, y1, x2, y2, c1, c2 );
}
void end( void ) /* 終わりのまとまり */
{
free(vp0);
KAN_disp(KAN_DISPOFF);
wpg( 1 );
EGB_clearScreen( work );
wpg( 0 );
EGB_clearScreen( work );
KAN_finish();
MOS_end();
exit(0);
}
void udten(int x1, int y1, int x2, int y2)
{
int y, l;
char v[1024], w[1024];
bsz( &x1, &x2 );
bsz( &y1, &y2 );
for (y=0; y<y2-y1; y+=2)
{
l=y;
if ((y2-y1) % 2==0 && y*2>=(y2-y1))
l+=1;
egbget(x1, y1+l, x2, y1+l, v);
egbget(x1, y2-l, x2, y2-l, w);
egbput(x1, y1+l, x2, y1+l, w);
egbput(x1, y2-l, x2, y2-l, v);
}
}
void lrten(int x1, int y1, int x2, int y2)
{
int x,l;
char v[1024], w[1024];
bsz( &x1, &x2 );
bsz( &y1, &y2 );
for (x=0; x<x2-x1; x+=2)
{
l=x;
if ((x2-x1) % 2==0 && x*2>=(x2-x1))
l+=1;
egbget(x1+l, y1, x1+l, y2, v);
egbget(x2-l, y1, x2-l, y2, w);
egbput(x1+l, y1, x1+l, y2, w);
egbput(x2-l, y1, x2-l, y2, v);
}
}
void circlen2(int x1, int y1, int x2, int y2, int c )
{
circle( x1,y1, sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1)), 0x2, c );
}
void circlef2(int x1, int y1, int x2, int y2, int c )
{
circle( x1,y1, sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1)), 0x22, c );
}
void circlenl(int x1, int y1, int x2, int y2, int c )
{
circlel( x1,y1, x2-x1,y2-y1, 0x2, c );
}
void circlefl(int x1, int y1, int x2, int y2, int c )
{
circlel( x1,y1, x2-x1,y2-y1, 0x22, c );
}